home *** CD-ROM | disk | FTP | other *** search
- /* ******************************************************************** */
- /* C code generated by: */
- /* Visual Arts Version 2.1 */
- /* Copyright 1994-95 Danny Y. Wong All rights reserved */
- /* Calgary, Alberta (CANADA) */
- /* Partial of the code is copyright by Jaba Development */
- /* ******************************************************************** */
-
- #include <VisualArts.h>
- #include <clib/VisualArts_protos.h>
-
- #define ID_ObjID6 0
-
- #define CustomNumGads 1
-
- #include "CustomImage_func.c"
-
- #include "CustomImage_images.c"
-
- int ObjID6Obj(struct VAobject VAObject);
-
- int SetupScreen(void);
- void CloseDownScreen(void);
- int OpenCustomWindow(char windtitle[]);
- void CloseCustomWindow(void);
- int CustomHandler(void);
- int CustomMainHandler(void);
- void DrawCustomObjs(void);
- int main(int argc, char *argv[]);
-
- struct Screen *PubScr = NULL;
- struct DrawInfo *ScrDrawInfo = NULL;
- APTR VisualInfo = NULL;
- struct Screen *Scr = NULL;
- struct Window *CustomWnd = NULL;
- struct Gadget *CustomGList = NULL;
- struct Gadget *CustomGadgets[CustomNumGads];
- struct IntuiMessage CustomMsg;
- UWORD CustomLeft = 122;
- UWORD CustomTop = 17;
- UWORD CustomWidth = 332;
- UWORD CustomHeight = 156;
- struct TextAttr topaz8 = { (STRPTR)"topaz.font", 8, 0x00, 0x01 };
- struct TextAttr topaz800 = { (STRPTR)"topaz.font", 8, 0x00, 0x00 };
-
- WORD CustomGadTypes[] = {
- BUTTON_KIND,
- };
-
- struct NewGadget CustomNGads[] = {
- 115, 126, 87, 13, (UBYTE *)"Button",&topaz800, ID_ObjID6, PLACETEXT_IN, NULL, (APTR)ObjID6Obj,
- };
-
- ULONG CustomNTags[] = {
- TAG_DONE,
- };
-
- int SetupScreen(void)
- {
- struct ViewPort *viewport;
-
- PubScr = LockPubScreen("Workbench");
- if (PubScr != NULL)
- {
- ScrDrawInfo = GetScreenDrawInfo(PubScr);
- if (!(Scr = OpenScreenTags(NULL,
- SA_Left, 0,
- SA_Top, 0,
- SA_Width, 640,
- SA_Height, 200,
- SA_Depth, 4,
- SA_Font, &topaz800,
- SA_Type, CUSTOMSCREEN,
- SA_DisplayID, 102400,
- SA_AutoScroll, TRUE,
- SA_Overscan, 2,
- SA_Pens, (ULONG)(ScrDrawInfo->dri_Pens),
- SA_Title, "Visual Arts V2.2 Copyright 1994-95 Danny Y. Wong All Rights Reserved.",
- TAG_DONE)))
- return(1L);
- }
- else
- return(1L);
-
- if (!(VisualInfo = GetVisualInfo(Scr, TAG_DONE)))
- return(2L);
- viewport = (struct ViewPort *)&Scr->ViewPort;
- LoadRGB4(viewport, (UWORD *)&CustomColorMap, 32);
- return(0L);
- }
-
- void CloseDownScreen(void)
- {
- if (ScrDrawInfo)
- FreeScreenDrawInfo(PubScr, ScrDrawInfo);
- if (VisualInfo)
- FreeVisualInfo(VisualInfo);
- if (Scr)
- CloseScreen(Scr);
- if (PubScr)
- UnlockPubScreen(NULL, PubScr);
- }
-
- int OpenCustomWindow(char windtitle[80])
- {
- struct NewGadget NewGad;
- struct Gadget *Gad;
- register UWORD i, j;
- UWORD offsetx = Scr->WBorLeft;
- UWORD offsety = Scr->WBorTop + Scr->Font->ta_YSize + 1;
-
- if (!(Gad = CreateContext(&CustomGList)))
- return(1L);
-
- for (i=0, j=0; i < CustomNumGads; i++)
- {
- CopyMem((char *)&CustomNGads[i], (char *)&NewGad, (long)sizeof(struct NewGadget));
-
- NewGad.ng_VisualInfo = VisualInfo;
- NewGad.ng_LeftEdge += offsetx;
- NewGad.ng_TopEdge += offsety;
-
- CustomGadgets[i] = Gad = CreateGadgetA((ULONG)CustomGadTypes[i], Gad, &NewGad,
- (struct TagItem *)&CustomNTags[j]);
- while (CustomNTags[j])
- j +=2;
- j++;
- if (!Gad)
- return(2L);
- }
- if (!(CustomWnd = OpenWindowTags(NULL,
- WA_Left, CustomLeft,
- WA_Top, CustomTop,
- WA_Width, CustomWidth,
- WA_Height, CustomHeight + kWindowOffSetY,
- WA_NewLookMenus, TRUE,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_NEWSIZE | IDCMP_GADGETUP ,
- WA_Flags, WFLG_CLOSEGADGET | WFLG_DEPTHGADGET | WFLG_SMART_REFRESH |
- WFLG_ACTIVATE | WFLG_DRAGBAR ,
- WA_Gadgets, CustomGList,
- WA_Title, windtitle,
- WA_ScreenTitle, "Visual Arts V2.2 Copyright 1994-95 Danny Y. Wong All Rights Reserved.",
- WA_CustomScreen, Scr,
- WA_MinWidth, 160,
- WA_MinHeight, 50,
- WA_MaxWidth, 640,
- WA_MaxHeight, 200,
- TAG_DONE)))
- return(3L);
-
- DrawImage(CustomWnd->RPort, &ninja900_brushImage, 8, 13 + kWindowOffSetY);
- DrawImage(CustomWnd->RPort, &robotImage, 170, 15 + kWindowOffSetY);
- DrawImage(CustomWnd->RPort, &porsche_brushImage, 10, 93 + kWindowOffSetY);
- GT_RefreshWindow(CustomWnd, NULL);
- RefreshGadgets(CustomGadgets[0], CustomWnd, NULL);
- return(0L);
- }
-
- void CloseCustomWindow(void)
- {
- if (CustomWnd)
- CloseWindow(CustomWnd);
- if (CustomGList)
- FreeGadgets(CustomGList);
- }
-
- int CustomHandler(void)
- {
- struct IntuiMessage *msg;
- struct VAobject VAObject;
- int running = 1;
- int (*func)(struct VAobject VAObject);
- ULONG class;
- UWORD code;
-
- while (msg=GT_GetIMsg(CustomWnd->UserPort))
- {
- CopyMem((char *)msg, (char *)&CustomMsg, (long)sizeof(struct IntuiMessage));
- class = msg->Class;
- code = msg->Code;
-
- VAObject.va_Window = (struct Window *)CustomWnd;
- VAObject.va_Gadget = (struct Gadget *)msg->IAddress;
- VAObject.va_IntuiMsg = (struct IntuiMessage *)msg;
- VAObject.va_Flags = 0;
- VAObject.va_UserData = 0;
-
- GT_ReplyIMsg(msg);
- switch(class)
- {
-
- case IDCMP_NEWSIZE:
- break;
-
- case IDCMP_CLOSEWINDOW:
- return(0);
- break;
-
- case IDCMP_GADGETUP:
- func = (void *)((struct Gadget *)CustomMsg.IAddress)->UserData;
- if (func != NULL)
- running = func(VAObject);
- break;
-
- }
- }
- return(running);
- }
-
- int CustomMainHandler(void)
- {
- int running = 1;
- ULONG windsig, signals;
-
- windsig = 1L << CustomWnd->UserPort->mp_SigBit;
-
- while (running == 1)
- {
- signals = Wait( windsig );
- if (signals & windsig)
- {
- running = CustomHandler();
- }
- }
- return(running);
- }
-
- int main(int argc, char *argv[])
- {
- int rc;
-
- if (!(SetupScreen()))
- {
- if (!(OpenCustomWindow("Custom Image Demo")))
- {
- rc = CustomMainHandler();
- CloseCustomWindow();
- }
- CloseDownScreen();
- }
- return(0L);
- }
-